﻿/******************CRM.SanPham.cs********************\
 * Module name: Logic San Pham
 * Description: Business logic for San Pham
 * Author: viettp
\****************************************************/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Windows.Controls.Ribbon;
using OODCRM.Dialogs;
using OODCRM.Common;
using System.Windows;

namespace OODCRM
{
    public partial class MainWindow : RibbonWindow
    {

        internal void ChienDich_NewExecuted()
        {
            dicDialogData[CRMDialog.ThemChienDich] = new CHIENDICH()
            {

                DOITUONG = new DOITUONG()
                {
                    IdDoiTuong = System.Guid.NewGuid(),
                    ThoiDiemTao = DateTime.Now,
                    ThoiDiemSua = DateTime.Now,
                    DungChung = true,
                    LOAIDOITUONG1 = dataContext.LOAIDOITUONGs.FirstOrDefault(),
                    User = dataContext.Users.FirstOrDefault(),
                    User1 = dataContext.Users.FirstOrDefault(),
                    User2 = dataContext.Users.FirstOrDefault(),
                },

            };
            
            dicDialogMode[CRMDialog.ThemChienDich] = DialogMode.Them;

            EnableDialog(CRMDialog.ThemChienDich);
        }
        internal void ChienDich_EditExecuted()
        {
            CHIENDICH item = dgrChienDich.SelectedItem as CHIENDICH;
            if (item == null) return;

            dicDialogData[CRMDialog.ThemChienDich] = item;

            dicDialogMode[CRMDialog.ThemChienDich] = DialogMode.Sua;

            EnableDialog(CRMDialog.ThemChienDich);
        }

        internal void ChienDich_DeleteExecuted()
        {
            CHIENDICH item = dgrChienDich.SelectedItem as CHIENDICH;
            if (item == null) return;

            // Check FK before delete
            var x1 = dataContext.CHITIETDOITUONGMARKETINGs.FirstOrDefault(x => x.MaChienDich == item.MaHieu) as CHITIETDOITUONGMARKETING;
            if (x1 != null)
            {
                MessageBox.Show("Không thể xóa chiến dịch này do đã tạo đối tượng marketing! (" + x1.MaChienDich + ")",
                    "Không thể xoá", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            var x2 = dataContext.COHOIs.FirstOrDefault(x => x.MaChienDich == item.MaHieu) as COHOI;
            if (x2 != null)
            {
                MessageBox.Show("Còn tồn tại cơ hội thuộc chiến dịch này! (" + x2.TenCoHoi + ")",
                    "Không thể xoá", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            

            // Confirm and delete
            if (MessageBox.Show(
                    "Bạn có chắc muốn xoá chiến dịch \"" + item.TenChienDich + "\" ?", "Xác nhận xoá",
                    MessageBoxButton.YesNo,
                    MessageBoxImage.Question
                    )
                    == MessageBoxResult.Yes)
            {
                listChienDich.Remove(item);
                dataContext.CHIENDICHes.DeleteOnSubmit(item);
                try
                {
                    dataContext.SubmitChanges();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

    }
}
